#pragma once

#include "qlib/all.h"

namespace qbe::affix {

// 移动功能流程
enum struct State { None = 0, Upatde, Complete, Cancel };

// 移动参数 [资源]
struct Param {
  State state = State::None;  // 处于什么流程
  qlib::Vec2d first_pos;      // 第一次开始移动的鼠标位置
  qlib::Vec2d last_pos;       // 上一次拖动时的鼠标位置

  bool move_to_pos = false;
  qlib::Vec2d move_vec;

  void reset() {
    state = State::None;
    moveing = false;
    moveing_first = true;
    clear = false;
  }

  bool moveing = false;
  bool moveing_first = true;
  bool clear = false;

  static bool from_copy;

  qlib::Vec2d to_center;
};

}  // namespace qbe::affix